package com.dragon.modules.yuegou.enums.code;

import com.dragon.common.constant.enums.IBusinessCode;

import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 支付业务状态码 已180开头
 *
 *
 */
public enum LoginCode implements IBusinessCode {
	/**
	 * 微信登陆信息错误
	 */
	WX_LOGIN_INFO_ERROR(18001, "微信登陆信息错误"),
	
	/**
	 * 该手机号码已被注册
	 */
	MOBILE_IS_HAS_BEEN_REGISTERED(18002, "该手机号码已被注册"),
	
	/**
	 * 确认密码不能为空
	 */
	CONFIRM_PASSWORD_IS_EMPTY(18004, "确认密码不能为空"),
	
	/**
	 * 两次输入密码不一致！
	 */
	PASSWORD_INCONSISTENCY(18005, "两次输入密码不一致！"),
	
	/**
	 * 手机号为空
	 */
	MOBILE_IS_EMPTY(18006, "手机号为空"),
	
	/**
	 * 来源为空
	 */
	SOURCE_IS_EMPTY(18007, "来源为空"),
	
	/**
	 * 手机号不存在
	 */
	MOBILE_IS_NOT_EXIST(18008, "手机号不存在"),

	/**
	 * 验证码为空
	 */
	VALIDATE_CODE_IS_EMPTY(18010, "验证码为空"),
	
	/**
	 * wxunionId为空
	 */
	WXUNIONID_IS_EMPTY(18011,"wxUnionId为空"),
	
	/**
	 * 
	 */
	MOBILE_IS_REGISTER_OR_SAME(18012,"手机号码和原来的一致或该手机号码已被注册！")
	;
	
	private final Integer code;

	private final String message;

	private LoginCode(Integer code, String message) {
		this.code = code;
		this.message = message;
	}

	@Override
	public Integer getCode() {
		return code;
	}

	@Override
	public String getMessage() {
		return message;
	}

	/**
	 * 把code转化为ResponseCode枚举
	 *
	 * @param code
	 *            代码
	 * @return
	 */
	public static LoginCode from(Integer code) {
		if (code == null) {
			return null;
		}
		return CODE_MAP.get(code);
	}

	/**
	 * Code Map for ResponseCode
	 */
	private static final Map<Integer, LoginCode> CODE_MAP = Stream.of(LoginCode.values())
			.collect(Collectors.toMap(LoginCode::getCode, e -> e));
}
